/*------------------------------------------------------------------------
|                            FILE DESCRIPTION                            |
------------------------------------------------------------------------*/
/*------------------------------------------------------------------------
|  - File name     : os_core.h
|  - Author        : zeweni
|  - Update date   : 2021.05.05
|  - Copyright(C)  : 2021-2021 zeweni. All rights reserved.
------------------------------------------------------------------------*/
/*------------------------------------------------------------------------
|                            COPYRIGHT NOTICE                            |
------------------------------------------------------------------------*/
/*
 * Copyright (C) 2021, zeweni (17870070675@163.com)

 * This file is part of Ant Real Time Operating System.

 * Ant Real Time Operating System is free software: you can redistribute 
 * it and/or modify it under the terms of the Apache-2.0 License.

 * Ant Real Time Operating System is distributed in the hope that it will 
 * be useful,but WITHOUT ANY WARRANTY; without even the implied warranty 
 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
 * Apache-2.0 License License for more details.

 * You should have received a copy of the Apache-2.0 License.Ant Real Time
 * Operating System. If not, see <http://www.apache.org/licenses/>.
**/
/*------------------------------------------------------------------------
|                                INCLUDES                                |
------------------------------------------------------------------------*/
#ifndef __OS_CORE_H_
#define __OS_CORE_H_

#include "os_type.h"

/*------------------------------------------------------------------------
|                                  DATA                                  |
------------------------------------------------------------------------*/

/*------------------------------------------------------------------------
|                              API FUNCTIONS                             |
------------------------------------------------------------------------*/

/**
 * @brief   AntOS初始化启动代码,该函数在main之前执行。
 * @details AntOS initializes the startup code, and this function is executed before main.
 * @param   None.
 * @return  [OS_OK] 初始化成功。Ant RTOS initailized successfully. 
 * @return  [OS_NOK]初始化失败。 Ant RTOS initailized failed. 
**/
int AntOS_Startup_Init(void);

/**
 * @brief     初始化板极支持包，需要在外部实现这个同名函数，否则会报错。
 * @details   To initialize the board support package, 
 *            you need to implement this function with the same name externally, 
 *            otherwise an error will be reported.
 * @param     None.
 * @return    None.
 * @note      必须要初始化一个定时器，并开启它的中断，中断时间推荐设置为5~10ms，
 *            以此中断时间作为系统心跳节拍时间。
 *            It is necessary to initialize a timer and start its interrupt. 
 *            It is recommended to set the interrupt time to 5~10ms.
 *            Use this interruption time as the system heartbeat beat time.
**/
extern void AntOS_Board_Init(void);


/**
 * @brief     AntOS提供的主函数，用于创建线程，需要在外部实现这个同名函数，否则会报错。
 * @details   The main function provided by AntOS is used to create threads. 
 *            This function of the same name needs to be implemented externally, 
 *            otherwise an error will be reported.
 * @param     None.
 * @return    None.
**/
extern void AntOS_Main(void);

#endif
/*------------------------------------------------------------------------
|                    END OF FLIE.  (C) COPYRIGHT zeweni                  |
------------------------------------------------------------------------*/